package etp.client;

import java.io.Serializable;

import java.util.List;

import javax.jdo.annotations.*;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Recurso implements Serializable{
	
    /**
	 * Identifica objetos serializados que sao desta classe
	 */
	private static final long serialVersionUID = 4869571951347617461L;

	@PrimaryKey
    @Persistent
    @Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
	private String cod;
	
	@Persistent
	private String nome;
	
	@Persistent
	private String email;
	
	@Persistent
	private String password;
	
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Persistent
	@Element(dependent = "true")
	private List<String> tarefas;

	@Persistent
	private int tipo_de_recurso;
	
	public Recurso(String nome, int tipo_de_recurso){
		
		setNome(nome);
		setTipo_de_recurso(tipo_de_recurso);
	}
	
	public Recurso(){
		this.setNome("");
		this.setTipo_de_recurso(0);
	}
	
	/**
	 * @param cod the cod to set
	 */
	public void setCod(String cod) {
		this.cod = cod;
	}

	/**
	 * @return the cod
	 */
	public String getCod() {
		return cod;
	}
	
	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * @param nome the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * @return the tarefas
	 */
	public List<String> getTarefas() {
		return tarefas;
	}

	/**
	 * @param tarefas the tarefas to set
	 */
	public void setTarefas(List<String> tarefas) {
		this.tarefas = tarefas;
	}

	/**
	 * @return the tipo_de_recurso
	 */
	public int getTipo_de_recurso() {
		return tipo_de_recurso;
	}

	/**
	 * @param tipoDeRecurso the tipo_de_recurso to set
	 */
	public void setTipo_de_recurso(int tipoDeRecurso) {
		tipo_de_recurso = tipoDeRecurso;
	}
	
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	/*
	 * (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	public String toString(){
		return "[" + this.getCod() + "]" + this.getNome();
	}
	
	public enum Tipo {
	
		DESENVOLVEDOR(0), ANALISTA(1);
		
		private int code;
		
		private Tipo(int code){
			this.code = code;
		}
		
		public int getCode(){
			return this.code;
		}
	}
}
